﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Collections.Generic;

namespace VAdvantage.Controls
{
    /// <summary>
    /// AD_Control Interface (must)
    /// </summary>
    /// 
    public interface IControl :IDisposable
    {

        event EventHandler VetoableChangeListener;

        int GetDisplayType();
        void SetDisplayType(int displayType);
       
        bool GetIsReadonly();
        void SetReadOnly(bool readOnly);

        VAdvantage.Grids.GridField GetField();
        void SetField(VAdvantage.Grids.GridField mField);
        
        String GetName();
        void SetName(string name);
        
        string GetText();
        
        object GetValue();
        void SetValue(object value);

        bool GetIsMandatory();
        void SetIsMandatory(bool value);

        void SetBackGround(bool value);
       
        string GetSelectedText();

        bool IsDisabled();
        void SetDisabled(bool disabled);
        
        int GetTabIndex();
        void SetTabindex(int tabindex);

        bool Multiline { get;  set; }
        
        bool Visible{ get;set;}

        bool Focused { get; }

         String BindValue
        {
            set;
        }
    }

    /// <summary>
    /// Button (optional;)
    /// </summary>
    public interface IButton
    {
        int GetAD_Process_ID();
        Dictionary<String, String> GetValues();
        string GetDescription();
        string GetHelp();
    }

    /// <summary>
    /// TextChanged
    /// </summary>
    public interface ITextChangedEvent
    {
        event EventHandler FireTextChanged;
    }

    /// <summary>
    /// DataGrid view Editing intrface
    /// </summary>
    public interface IEditingControl
    {
        VDataGrid EditingControlDataGridView
        {
            get;
            set;
        }
        void SetValueInDataGridColumn(object value);
    }

    public interface IVisualEditor
    {
        void ReadOnly(bool readOnly);
        void BackColour(SolidColorBrush clr);
    }
}
